package com.zg.job.service;

import com.zg.common.core.dao.system.SysJob;
import org.quartz.SchedulerException;

import java.util.List;

/**
 * 定时任务操作接口
 * @author Zxb
 */
public interface QuartzService {
	/**
	 * 启动所有任务
	 * @throws SchedulerException 异常
	 */
	void startAll() throws Exception;

	/**
	 * 添加任务
	 * @param job 任务
	 * @throws SchedulerException 异常
	 */
	void addJob(SysJob job) throws SchedulerException;

	/**
	 * 修改任务
	 * @param job 任务
	 * @param cron corn表达式
	 * @throws SchedulerException 异常
	 */
	void modifyJob(SysJob job, String cron) throws SchedulerException;

	/**
	 * 暂停任务
	 * @param job 任务
	 * @throws SchedulerException 异常
	 */
	void pauseJob(SysJob job) throws SchedulerException;

	/**
	 * 恢复任务
	 * @param job 任务
	 * @throws SchedulerException 异常
	 */
	void resumeJob(SysJob job) throws SchedulerException;

	/**
	 * 删除任务
	 * @param job 任务
	 * @throws SchedulerException 异常
	 */
	void delJob(SysJob job) throws SchedulerException;



	/**
	 * 全部有效定时任务
	 * @return
	 */
	List<SysJob> listSysJob();

	/**
	 * 生成可运行的定时任务
	 * @return
	 * @throws ClassNotFoundException
	 */
	List<SysJob> genJob() throws ClassNotFoundException;
}
